<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js中的数据类型</title>
</head>
<body>
    <script type="text/javascript">
        // 虽然JS中的变量在声明的时候不需要指定数据类型, 但是在赋值时,
        // 每个数据还是要有一个类型的
        // JS中数据类型有原始类型, 还有引用类型
        // 原始类型:Undefined, Number, String, Boolean, Null
        // 引用类型:Object及其它的子类
        // 在ES6之后, 又添加了一种新的类型 Symbol
        // JS中有一个运算符叫做typeof, 这个运算符可以在程序运行的过程中动态的获取变量类型
        // typeof运算符运算的结果是以下6个字符串之一, 注意字符串都是小写
        //     "undefined"
        //     "number"
        //     "string"
        //     "boolean"
        //     "object"
        //     "function"
        // 在 JS 中比较字符串的值是否相等使用 ==
        var i1;
        alert(typeof i1); // undefined

        var i2 = 10;
        alert(typeof i2); // number

        var i3 = "abc";
        alert(typeof i3); // string

        var i4 = null;
        alert(typeof i4); // object
        var o = new Object();
        alert(typeof o); // object

        var i5 = false;
        alert(typeof i5); // boolean

        function f() {
        }
        alert(typeof f); // function

        // 数字求和的函数
        function sum(a, b) {
            if (typeof a == "number" && typeof b == "number") {
                return a + b;
            }
            alert("a,b都必须为数字");
        }
        var retValue = sum(1, "2");
        // 由于这个函数没有返回值, 所以这里返回undefined
        alert(retValue);// undefined

        retValue = sum(2, 3);
        alert(retValue);
    </script>
</body>
</html>